Skip to content

发送字符串 - SendString

函数简介

向指定窗口发送文本数据(UTF-8)。不会自动打开输入法,避免部分程序因切换布局/IME 而卡死。

优先对 Edit/RichEdit 使用 EM_REPLACESEL 整串插入;其它窗口按字符投递 WM_IME_CHAR(Unicode 窗走 *W,ANSI 窗走 GBK + *A)。

若目标必须打开中文输入法才能正常输入,请改用 SendString2

接口名称

SendString

DLL调用

int SendString(long ola, long hwnd, string str);

参数说明

参数名类型说明
ola长整数型OLAPlug对象的指针,由 CreateCOLAPlugInterFace 接口生成。
hwnd长整数型目标窗口句柄。为 0 时使用当前 绑定窗口
str字符串要发送的文本数据(UTF-8)。

示例

SDK 调用

cpp
#include "OLAPlugServer.h"

OLAPlugServer ola;
int ret = ola.SendString(hwnd, "value");
csharp
using OLAPlug;

var ola = new OLAPlugServer();
int ret = ola.SendString(hwnd, "value");
python
from OLAPlugServer import OLAPlugServer

ola = OLAPlugServer()
ret = ola.SendString(hwnd, "value")
java
import com.olaplug.OLAPlugServer;

OLAPlugServer ola = new OLAPlugServer();
int ret = ola.SendString(hwnd, "value");
go
import "github.com/ola/olaplug/olaplug"

ola, _ := olaplug.NewOLAPlugServer("OLAPlug_x64.dll")
defer ola.ReleaseObj()
ret := ola.SendString(hwnd, "value")
rust
use olaplug::OLAPlugServer;

let ola = OLAPlugServer::new("OLAPlug_x64.dll").unwrap();
let ret = ola.send_string(&hwnd, "value");
cpp
var ola = com("OlaPlug.OlaSoft")
var ret = ola.SendString(hwnd, "value")
vbscript
Set ola = CreateObject("OlaPlug.OlaSoft")
ret = ola.SendString(hwnd, "value")
text
.局部变量 ola, OLAPlug
ola.创建 ()
ret = ola.SendString(hwnd, “value”)
aardio
import OLAPlugServer;
var ola = OLAPlugServer();
var ret = ola.SendString(hwnd, "value");
text
变量 ola <类型 = OLAPlugServer>
ola = 新建 OLAPlugServer
整数 ret = ola.SendString(hwnd, "value")
cpp
#include "OLAPlugServer.h"

OLAPlugServer ola;
int32_t ret = ola.SendString(hwnd, "value");

原生 DLL 调用

cpp
long instance = CreateCOLAPlugInterFace();
SendString(instance, hwnd, "value");
csharp
using System.Runtime.InteropServices;
using System.Text;

[DllImport("OLAPlug_x64.dll", CallingConvention = CallingConvention.StdCall)]
static extern long CreateCOLAPlugInterFace();
[DllImport("OLAPlug_x64.dll", CallingConvention = CallingConvention.StdCall)]
static extern int SendString(long ola, long hwnd, string str);

long instance = CreateCOLAPlugInterFace();
SendString(instance, hwnd, "value");
python
from ctypes import CDLL, c_int, c_int64, create_string_buffer

ola = CDLL("OLAPlug_x64.dll")
ola.CreateCOLAPlugInterFace.restype = c_int64
instance = ola.CreateCOLAPlugInterFace()
ola.SendString(instance, hwnd, "value")

返回值

返回值说明
1成功。
0失败。

注意事项

项目说明
输入法自动打开 IME / 切换中文布局。多数窗口可直接输入中文。
与 SendString2SendString2 会在发送前强制打开输入法,部分程序可能卡死,仅在确有需要时使用。
与 SendStringExSendStringEx 从内存地址读取指定编码字符串再发送。
粘贴替代也可先 SetClipboard 再调用 SendPaste / SendPaste2 / SendPaste3